package com.view;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.validation.constraints.NotNull;

@ManagedBean
@ViewScoped
@SuppressWarnings("serial")
public class ProductoCodigoView implements Serializable {

	private Long id;

	@NotNull(message = "Debe seleccionar un producto")
	private ProductoView producto;

	private String codigoProveedor;

	private ProveedorView proveedor;

	public ProductoCodigoView(Long id, ProductoView producto,
			String codigoProveedor, ProveedorView proveedor) {
		this.id = id;
		this.producto = producto;
		this.codigoProveedor = codigoProveedor;
		this.proveedor = proveedor;
	}

	public ProductoCodigoView() {
		this(null, new ProductoView(), null, new ProveedorView());
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public ProductoView getProducto() {
		return producto;
	}

	public void setProducto(ProductoView producto) {
		this.producto = producto;
	}

	public String getCodigoProveedor() {
		return codigoProveedor;
	}

	public void setCodigoProveedor(String codigoProveedor) {
		this.codigoProveedor = codigoProveedor;
	}

	public ProveedorView getProveedor() {
		return proveedor;
	}

	public void setProveedorView(ProveedorView proveedorView) {
		this.proveedor = proveedorView;
	}

	@Override
	public boolean equals(Object obj) {

		boolean ret = true;

		ProductoCodigoView productoCodigo = (ProductoCodigoView) obj;

		if (producto != null && productoCodigo.getProducto() != null) {
			ret = producto.getId().intValue() == productoCodigo.getProducto()
					.getId();
		} else if (producto == null && productoCodigo.getProducto() == null) {
			ret = true;
		} else {
			ret = false;
		}

		return ret;
	}

}
